from spider.util import MysqlClient

TBL_NAME = 'rank_hot_video_my'# 根据自己的情况，修改表名称
TBL_NAME_subvideo = 'rank_hot_subvideo'
TBL_NAME_subvideo2 = 'rank_hot_subvideo2'
TBL_NAME_DETAIL = 'rank_hot_videodetail'

class SpiderPipeline:
    client = None

    def open_spider(self, spider):
        self.client = MysqlClient()

    def process_item(self, item, spider):
        print('item', item)
        #为了不让组与组之间混乱
        if spider.name == 'rank_hot_video':# 这里一定要判断类型，只有属于自己的Item才能使用
            #在这里我们需要的时候可以打印item来进行检测（为了直接看到piieline有没有输出，把前面输出的item注释掉），因为有时候没结果，可能是这里根本没数据传上来
            #print(item)
            #把爬取的数据存到数据库
            sql = 'INSERT INTO '+TBL_NAME+'(id,name,channel_count) VALUES (%s, %s, %s)'
            self.client.execute(sql, [item['id'],item['name'], item['channel_count']])

        if spider.name == 'rank_hot_subvideo':  # 这里一定要判断类型，只有属于自己的Item才能使用
                # 在这里我们需要的时候可以打印item来进行检测（为了直接看到piieline有没有输出，把前面输出的item注释掉），因为有时候没结果，可能是这里根本没数据传上来
                # print(item)
                # 把爬取的数据存到数据库
                #pid = scrapy.Field()  #保存父频道
                #id = scrapy.Field()
                #name = scrapy.Field()
                #cover = scrapy.Field()
                #subscribed_count= scrapy.Field()
                #archive_count = scrapy.Field()
                #featured_count = scrapy.Field()
            sql = 'INSERT INTO ' + TBL_NAME_subvideo + '(pid,id,name,cover,subscribed_count,archive_count,featured_count) VALUES (%s, %s, %s,%s, %s, %s, %s)'
            self.client.execute(sql, [item['pid'], item['id'], item['name'],item['cover'], item['subscribed_count'], item['archive_count'],item['featured_count']])


        if spider.name == 'rank_hot_subvideo2':  # 这里一定要判断类型，只有属于自己的Item才能使用
                # 在这里我们需要的时候可以打印item来进行检测（为了直接看到piieline有没有输出，把前面输出的item注释掉），因为有时候没结果，可能是这里根本没数据传上来
                # print(item)
                # 把爬取的数据存到数据库
                #pid = scrapy.Field()  #保存父频道
                #id = scrapy.Field()
                #name = scrapy.Field()
                #cover = scrapy.Field()
                #subscribed_count= scrapy.Field()
                #archive_count = scrapy.Field()
                #featured_count = scrapy.Field()
            sql = 'INSERT INTO ' + TBL_NAME_subvideo2 + '(pid,id) VALUES (%s, %s)'
            self.client.execute(sql, [item['pid'], item['id']])



        if spider.name == 'rank_hot_videodetail4':
            sql = 'INSERT INTO ' + TBL_NAME_DETAIL +' (cid,scid,id,name,cover,view_count,like_count,duration,author_name,author_id,bvid,card_type,sort1,filt,pubdate,danmu_count,coins_count,collect_count,share_count) VALUES (%s, %s, %s,%s, %s, %s, %s, %s, %s, %s,%s, %s, %s, %s,%s, %s, %s,%s, %s)'
            self.client.execute(sql,[item['cid'],item['scid'],item['id'],item['name'],item['cover'],item['view_count'],item['like_count'],item['duration'],item['author_name'],item['author_id'],item['bvid'],item['card_type'],item['sort1'],item['filt'],item['pubdate'],item['danmu_count'],item['coins_count'],item['collect_count'],item['share_count']])

        return item  # 最后一定要返回item



